home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / gnustuff / tos / progut~1 / stdwin.zoo / bed / mmenu.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-10-17  |  1.9 KB  |  99 lines

  1. #include "bed.h"
  2. #include "menu.h"
  3.  
  4. int    state = PENCIL_ITEM ;
  5.  
  6. extern MENU    *pmmenu ;
  7. extern MENU    *popmenu ;
  8.  
  9. extern bool    drawline ;
  10.  
  11. extern bool    drawcircle ;
  12.  
  13. extern bool    selrect ;
  14. extern int    sr_left ;
  15. extern int    sr_top ;
  16. extern int    sr_right ;
  17. extern int    sr_bottom ;
  18.  
  19. extern void    invertbit () ;
  20.  
  21. void
  22. do_mode_menu (ep)
  23.     EVENT    *ep ;
  24. {
  25.     int    i ;
  26.  
  27.     switch (ep->u.m.item) {
  28.     case PENCIL_ITEM :
  29.         if (drawline) {
  30.             plotline (invertbit, FALSE) ;
  31.             drawline = FALSE ;
  32.         }
  33.         else if (drawcircle) {
  34.             plotcircle (invertbit, FALSE) ;
  35.             drawcircle = FALSE ;
  36.         }
  37.         else if (selrect) {
  38.             drawselrect (sr_left, sr_top, sr_right, sr_bottom) ;
  39.             selrect = FALSE ;
  40.         }
  41.  
  42.         wmenucheck (pmmenu, state, FALSE) ;
  43.         wmenucheck (pmmenu, PENCIL_ITEM, TRUE) ;
  44.         state = PENCIL_ITEM ;
  45.         break ;
  46.     case LINE_ITEM :
  47.         if (drawcircle) {
  48.             plotcircle (invertbit, FALSE) ;
  49.             drawcircle = FALSE ;
  50.         }
  51.         else if (selrect) {
  52.             drawselrect (sr_left, sr_top, sr_right, sr_bottom) ;
  53.             selrect = FALSE ;
  54.         }
  55.  
  56.         wmenucheck (pmmenu, state, FALSE) ;
  57.         wmenucheck (pmmenu, LINE_ITEM, TRUE) ;
  58.         state = LINE_ITEM ;
  59.         break ;
  60.     case CIRCLE_ITEM :
  61.         if (drawline) {
  62.             plotline (invertbit, FALSE) ;
  63.             drawline = FALSE ;
  64.         }
  65.         else if (selrect) {
  66.             drawselrect (sr_left, sr_top, sr_right, sr_bottom) ;
  67.             selrect = FALSE ;
  68.         }
  69.  
  70.         wmenucheck (pmmenu, state, FALSE) ;
  71.         wmenucheck (pmmenu, CIRCLE_ITEM, TRUE) ;
  72.         state = CIRCLE_ITEM ;
  73.         break ;
  74.     case SELECT_ITEM :
  75.         if (drawline) {
  76.             plotline (invertbit, FALSE) ;
  77.             drawline = FALSE ;
  78.         }
  79.         else if (drawcircle) {
  80.             plotcircle (invertbit, FALSE) ;
  81.             drawcircle = FALSE ;
  82.         }
  83.  
  84.         wmenucheck (pmmenu, state, FALSE) ;
  85.         wmenucheck (pmmenu, SELECT_ITEM, TRUE) ;
  86.         state = SELECT_ITEM ;
  87.         break ;
  88.     }
  89.  
  90.     if (state == SELECT_ITEM) {
  91.         for (i = TRANS_MAJ_ITEM ; i <= FLIP_VERT_ITEM ; ++i)
  92.             wmenuenable (popmenu, i, TRUE) ;
  93.     }
  94.     else {
  95.         for (i = TRANS_MAJ_ITEM ; i <= FLIP_VERT_ITEM ; ++i)
  96.             wmenuenable (popmenu, i, FALSE) ;
  97.     }
  98. }
  99.